Python

您所在的位置:网站首页 腾龙20 28怎么样 Python

Python

2024-01-26 04:57| 来源: 网络整理| 查看: 265

问题

tkinter(Tk interface)是 Python 的标准 GUI 库,支持跨平台的 GUI 程序开发。tkinter 适合小型的 GUI 程序编写,也特别适合初学者学习 GUI 编程。

那么作为 GUI 编程的一个小白,该如何使用 tkinter 模块设计出一个如下图所示效果的简单的计算器呢?

在这里插入图片描述

分析

首先得把使用 tkinter 的一个面向对象的框架实现出来,再往里添加组件即可:

from tkinter import * class Application(Frame): """一个经典的GUI程序写法""" def __init__(self, master=None): super(Application, self).__init__(master) self.master = master self.pack() self.createWidget() def createWidget(self): """创建组件""" if __name__ == '__main__': root = Tk() # 创建一个主窗口 root.title('我的计算器') root.geometry('230x315+0+0') # 调整窗口位置和大小 app = Application(master=root) root.mainloop() # 调用组件的 mainloop() 方法,进入事件循环

有了一个整体的框架后,我们往里再添加任何组件就易如反掌了。这里仅仅需要将实现计算器的逻辑代码写在 createWidget() 方法中就行了,在 Application 类中可定义一些响应事件方法,完成一个计算器的完整逻辑,这里就只设计一个简单的计算器 UI 界面,计算器的完整实现功能逻辑日后再补加上去。

解决

下面就直接附上完整代码,有基础的应该一看就能懂了…

#!/usr/bin/env python3 # -*- coding: utf-8 -*- from tkinter import * class Application(Frame): """一个经典的GUI程序写法""" def __init__(self, master=None): super(Application, self).__init__(master) self.master = master self.pack() self.createWidget() def createWidget(self): """创建组件""" # 计算器上的各个数字键和功能键全部集合到一个列表中 self.btn_key = [ ['MC', 'M+', 'M-', 'MR'], ['C', '±', '÷', '×'], ['7', '8', '9', '-'], ['4', '5', '6', '+'], ['1', '2', '3', '='], ['0', '.'] ] v1 = StringVar() v1.set('0') # 设置输入框中初始显示值为 0 Entry(self, textvariable=v1, font=('微软雅黑', 14)).grid(row=0, column=0, columnspan=4, sticky=EW, pady=10) for i, li in enumerate(self.btn_key): for index, k in enumerate(li): if k == '=': Button(self, text=k, fg='black', font=('微软雅黑', 14)) \ .grid(row=i + 1, column=index, sticky=NSEW, rowspan=2) elif k == '0': Button(self, text=k, fg='black', font=('微软雅黑', 14)) \ .grid(row=i + 1, column=index, sticky=EW, columnspan=2) elif k == '.': Button(self, text=k, fg='black', font=('微软雅黑', 14)) \ .grid(row=i + 1, column=index + 1, sticky=EW) else: Button(self, text=k, fg='black', font=('微软雅黑', 14)) \ .grid(row=i + 1, column=index, sticky=EW) if __name__ == '__main__': root = Tk() # 创建一个主窗口 root.title('我的计算器') root.geometry('230x315+0+0') # 调整窗口位置和大小 app = Application(master=root) root.mainloop() # 调用组件的 mainloop() 方法,进入事件循环


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3